/**
 * 分析结果持久化服务
 * 负责保存、加载、管理分析结果
 */

export class AnalysisResultService {
    /**
     * 保存分析结果
     * @param {string} caseId 案件ID
     * @param {string} subjectId 人员ID（null表示全量模式）
     * @param {Object} results 分析结果对象
     * @returns {Promise<boolean>} 是否成功
     */
    /**
     * 保存分析结果
     */
    static async saveResult(caseId, subjectId, results) {
        try {
            const resultData = {
                caseId,
                subjectId,
                subjectName: results.subjectName || null,
                results,
                createdAt: new Date().toISOString(),
                version: '1.0'
            };

            const res = await window.electronAPI.analysis.saveReport(caseId, subjectId, resultData);
            if (res && res.success) {
                console.log(`[AnalysisResultService] 保存成功: ${res.path}`);
                return true;
            }
            return false;
        } catch (error) {
            console.error('[AnalysisResultService] 保存失败:', error);
            return false;
        }
    }

    /**
     * 加载分析结果
     */
    static async loadResult(caseId, subjectId) {
        try {
            return await window.electronAPI.analysis.loadReport(caseId, subjectId);
        } catch (error) {
            console.error('[AnalysisResultService] 加载失败:', error);
            return null;
        }
    }

    /**
     * 删除分析结果
     */
    static async deleteResult(caseId, subjectId) {
        return await window.electronAPI.analysis.deleteReport(caseId, subjectId);
    }

    /**
     * 检查是否有缓存结果
     */
    static async hasResult(caseId, subjectId) {
        const report = await this.loadResult(caseId, subjectId);
        return report !== null;
    }
}
